package top.suven.base.common.util;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 *
 * @ClassName: OrderUtils
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author Carson ylrainbow82@gmail.com
 * @date 2015-9-21 下午2:13:08
 *
 */
public class OrderUtils {

    /**
     * 订单ID生成函数 —— 规则：订单时间毫秒数（格式：yyMMddHHmmssSSS）+5位随机数
     * @param areaCode 订单归属地区码
     * @return
     */
    public static String generateOrderId() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmssSSS");
        final String dt = sdf.format(new Date());
        StringBuffer buffer = new StringBuffer();
        buffer.append(dt);
        //5位随机数
        buffer.append(getFixLenthString(5));
        //return "RBC"+buffer.toString();
        return "TST"+buffer.toString();
    }
    public static String generateOutTradeNo(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        final String dt = sdf.format(new Date());
        StringBuffer buffer = new StringBuffer();
        buffer.append(dt);
        //5位随机数
        buffer.append(getFixLenthString(3));
        return buffer.toString();
    }

    /**
     * 返回长度为【strLength】的随机数，在前面补0
     * @param strLength 字符长度
     * @return
     */
    private static String getFixLenthString(int strLength) {

        Random rm = new Random();

        // 获得随机数
        double pross = (1 + rm.nextDouble()) * Math.pow(10, strLength);

        // 将获得的获得随机数转化为字符串
        String fixLenthString = String.valueOf(pross);

        // 返回固定的长度的随机数
        return fixLenthString.substring(1, strLength + 1);
    }

}